unit clsVendedor;

interface

uses Dm,dbtables,biblio;

type
  TVendedor=Class(TObject)
    private
      Ven_Codigo  :String;
    public
      Cid_Codigo  :String;
      Ven_nome    :String;
      Ven_endereco:string;
      Ven_bairro  :String;
      Ven_fone    :String;
      Ven_cep     :String;
      Ven_comissao:Double; 
      function  Gravar(p_Ven_Codigo:String):Byte;
      function  Recuperar(p_Ven_Codigo:String):Byte;
      function  Excluir(p_Ven_Codigo:String):Byte;
      procedure Consultar(var p_q:TQuery; p_nome:String);
  end;

implementation

function TVendedor.Gravar;

var tq:TQuery;

begin
  tq:=Tquery.Create(Datamodule1.Dbteste);
  tq.databasename:=dm.Datamodule1.Dbteste.DatabaseName;
  tq.name:='qVendedor';
  tq.active:=False;
  tq.sql.clear;
  tq.params.clear;
  tq.sql.add('SELECT * FROM Vendedor where Ven_Codigo=:k_Ven_Codigo');
  tq.parambyname('k_Ven_codigo').asstring:=strzero(p_Ven_Codigo,3);
  tq.open;
  if tq.eof then begin
    tq.sql.clear; tq.params.clear;
    tq.sql.add('INSERT INTO Vendedor VALUES(:k_Ven_Codigo,:k_Cid_codigo,'+
               ':k_Ven_Nome,:k_Ven_endereco,:K_Ven_bairro,:k_Ven_fone,'+
               ':k_Ven_cep,:k_Ven_comissao)');
  end else begin
    tq.sql.clear; tq.params.clear;
    tq.sql.add('UPDATE Vendedor SET Ven_Nome=:k_Ven_Nome,Cid_codigo=:k_Cid_codigo,'+
               'Ven_endereco=:k_Ven_endereco,Ven_bairro=:k_Ven_bairro,'+
               'Ven_fone=:k_Ven_fone,Ven_cep=:k_Ven_cep,'+
               'Ven_comissao=:k_Ven_comissao WHERE Ven_Codigo=:k_Ven_Codigo');
  end;
  tq.parambyname('k_Ven_Codigo').asstring:=strzero(p_Ven_Codigo,3);
  tq.parambyname('k_Ven_Nome').asstring:=Ven_Nome;
  tq.parambyname('k_Cid_codigo').asstring:=strzero(Cid_codigo, 3);
  tq.parambyname('k_Ven_endereco').asstring:=Ven_endereco;
  tq.parambyname('k_Ven_Bairro').asstring:=Ven_bairro;
  tq.parambyname('k_Ven_fone').asstring:=Ven_fone;
  tq.parambyname('k_Ven_cep').asstring:=Ven_cep;
  tq.parambyname('k_Ven_comissao').asfloat:=Ven_comissao;
  tq.close;
  try
    tq.execsql;
    result:=1;
  except
    result:=0;
  end;
  tq.Free;
end;

function TVendedor.Recuperar;

var tq:TQuery;

begin
  tq:=Tquery.Create(Datamodule1.Dbteste);
  tq.databasename:=Datamodule1.Dbteste.DatabaseName;
  tq.active:=False;
  tq.sql.clear;
  tq.sql.add('SELECT * FROM Vendedor where Ven_Codigo=:k_Ven_Codigo');
  tq.Params[0].asstring:=strzero(p_Ven_Codigo,3);
  tq.open;
  Ven_Codigo     :=p_Ven_Codigo;
  if tq.eof then begin
    Ven_Nome :='';
    Cid_codigo := '';
    Ven_endereco := '';
    Ven_bairro := '';
    Ven_fone := '';
    Ven_cep := '';
    Ven_comissao := 0;
    Result:=0;
  end else begin
    Ven_Nome    := tq.fieldbyname('Ven_Nome').asstring;
    Cid_codigo  := tq.fieldbyname('cid_codigo').asstring;
    Ven_endereco:= tq.fieldbyname('Ven_endereco').asstring;
    Ven_bairro  := tq.fieldbyname('Ven_bairro').asstring;
    Ven_fone    := tq.fieldbyname('Ven_fone').asstring;
    Ven_cep     := tq.fieldbyname('Ven_cep').asstring;
    Ven_comissao:= tq.fieldbyname('Ven_comissao').asfloat;
    Result:=1;
  end;
  tq.Close;
  tq.Free;
end;

function TVendedor.Excluir;

var tq:TQuery;

begin
  tq:=Tquery.Create(Datamodule1.Dbteste);
  tq.databasename:=dm.Datamodule1.Dbteste.databasename;
  tq.name:='qVendedor';
  tq.active:=False;
  tq.close;
  tq.sql.Clear;
  tq.params.clear;
  tq.sql.add('DELETE FROM Vendedor WHERE Ven_Codigo=:k_Ven_Codigo');
  tq.parambyname('k_Ven_Codigo').asstring:=strzero(p_Ven_Codigo,3);
  try
    tq.execSQL;
    Result:=1;
  except
    result:=0;
  end;
  tq.close;
  tq.Free;
end;

procedure TVendedor.Consultar;

begin
  p_q.sql.Clear;
  p_q.Params.Clear;
  p_q.sql.add('Select * from Vendedor where Ven_Nome>=:k_Ven_Nome order by Ven_Nome');
  p_q.parambyname('k_Ven_Nome').asstring:=p_nome;
end;
end.
